home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Interactive Reference Guide / C-C++ Interactive Reference Guide.iso / c_ref / csource5 / 349_01 / sss.arc / EX_0804.BAS < prev    next >
Encoding:
BASIC Source File  |  1991-04-10  |  1.4 KB  |  70 lines

  1. ' Program EX_0804.BAS
  2. ' Listing 16B - see documentation in TUTOR.SSS
  3.  
  4. const ARRIVL = 1, STARTA = 2, ENDACT = 3, NEXTAC = 4
  5. const TIMEL = 150
  6.  
  7. common shared n, server, ecode, a1$, b$, c$
  8.  
  9. declare sub prime ()
  10. declare sub annonc ()
  11.  
  12. rem $include: 'SSSB.H'
  13.  
  14.   call prime
  15.  
  16.   do
  17.     ecode = NEXTEV
  18.     if ecode > 0 then
  19.       select case ecode
  20.  
  21.       case ARRIVL
  22.              n = n + 1
  23.              CREATE EX(1), n
  24.              SCHED 0, NEXTAC, IDE
  25.  
  26.       case NEXTAC
  27.              if server > 0 then
  28.                SCHED 0, STARTA, IDE
  29.              else
  30.                QUEUE 1, 0
  31.                annonc
  32.              end if
  33.  
  34.       case STARTA
  35.              SCHED EX(.9), ENDACT, IDE
  36.              server = server - 1
  37.  
  38.       case ENDACT
  39.              DISPOS
  40.              server = server + 1
  41.              if NQ(1) > 0 then
  42.                REMVFQ 1, 1
  43.                SCHED 0, STARTA, IDE
  44.                annonc
  45.              end if
  46.  
  47.       end select
  48.     end if
  49.   loop while ecode > 0
  50.  
  51. end
  52.  
  53. sub annonc
  54.   print #1, using a1$; T; NQ(1); QAVG(1); QSTD(1)
  55.   print using b$; T; NQ(1); QAVG(1);
  56.   print using c$; QSTD(1)
  57. end sub
  58.  
  59. sub prime
  60.   a1$ = "####.## ### ##.# ##.##"
  61.   b$ = "At ####.## q-size incr to:### ave q=##.#"
  62.   c$ = "  std q=##.##"
  63.   n = 0
  64.   server = 1
  65.   INIQUE 1, 0, 0
  66.   CREATE 0, n
  67.   SIMEND TIMEL
  68.   open "EX_0804.DAT" for output as #1
  69. end sub
  70.